home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <memory.h>
- #include <devices.h>
- #include <files.h>
-
- #include <MacTCPCommonTypes.h>
- #include <UDPPB.h>
-
- static ParamBlockRec fpb;
- static char ipdriver[6];
- static UDPiopb pb;
- static OSErr io;
- static char sendbuf[1024];
- static wdsEntry wds[2];
-
- main()
- {
- ipdriver[0] = 4;
- ipdriver[1] = '.';
- ipdriver[2] = 'i';
- ipdriver[3] = 'p';
- ipdriver[4] = 'p';
- ipdriver[5] = 0;
- fpb.ioParam.ioCompletion = 0L;
- fpb.ioParam.ioNamePtr = ipdriver;
- fpb.ioParam.ioPermssn = fsCurPerm;
- fprintf(stderr,"about to PBOpen\n");
- io = PBOpen(&fpb,false);
- fprintf(stderr,"PBOpen completed code %d driver %d\n",io,fpb.ioParam.ioRefNum);
- pb.ioCRefNum = fpb.ioParam.ioRefNum;
-
- pb.ioCompletion = 0L;
- pb.csCode = UDPCreate;
- pb.csParam.create.rcvBuff = NewPtr(8192);
- pb.csParam.create.rcvBuffLen = 8192;
- pb.csParam.create.notifyProc = 0L;
- pb.csParam.create.localPort = 0;
- pb.csParam.create.userDataPtr = "UDPCreate";
- fprintf(stderr,"about to UDPCreate\n");
- io = PBControl(&pb,false);
- fprintf(stderr,"UDPCreate completed code %d udpStream %08x\n",io,pb.udpStream);
-
- strcpy(sendbuf,"HELO milligan.utcs.utoronto.ca");
- wds[0].length = strlen(sendbuf);
- wds[0].ptr = sendbuf;
- wds[1].length = 0;
- pb.csCode = UDPWrite;
- pb.csParam.send.remoteHost = 0x8064660a;
- pb.csParam.send.remotePort = 69;
- pb.csParam.send.wdsPtr = &wds[0];
- pb.csParam.send.checkSum = true;
- pb.csParam.send.sendLength = 0/* must be zero */;
- pb.csParam.send.userDataPtr = "xUDPWrite";
- fprintf(stderr,"about to UDPWrite\n");
- io = PBControl(&pb,false);
- fprintf(stderr,"UDPWrite completed code %d\n",io);
-
- pb.csCode = UDPRelease;
- fprintf(stderr,"about to UDPRelease\n");
- io = PBControl((&pb),false);
- fprintf(stderr,"UDPRelease done code %d\n",io);
- DisposPtr(pb.csParam.create.rcvBuff);
- }
-